package com.xbongbong.paas.pojo.dto;

import com.alibaba.fastjson.JSONArray;
import com.xbongbong.paas.domain.entity.ext.OptionalRangeEntity;
import com.xbongbong.paas.toolbox.wrap.BaseDTO;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.ArrayList;
import java.util.List;

/**
 * @author: wufeng
 * @date: 2018/8/20 8:53
 * @desrcption: 节点对象
 */
@Getter
@Setter
@ToString
public class ProcessTemplateNodeAddDTO extends BaseDTO {
    private static final long serialVersionUID = 3549483531290911132L;

    private String uid;

    /**
     * 节点名称
     */
    private Integer type;

    /**
     * 节点名称
     */
    private String name;

    /**
     * 字段权限
     */
    private JSONArray fieldPermission;

    /**
     *节点负责人
     */
    private List<OptionalRangeEntity> mainUser;

    /**
     * 流程节点是否启用抄送，如果启用，则抄送人保存在ccUser中
     */
    private Integer enableCCFlag;

    /**
     *节点抄送人
     */
    private List<OptionalRangeEntity> ccUser;

    /**
     * 是否必填审批意见
     */
    private Integer opinionFlag;

    /**
     * 是否启用，1启用，0不启用
     */
    private Integer enable;

    /**
     * 创建者id
     */
    private Long creatorId;

    /**
     * 是否开启提交（1：开启；0：不开启）
     */
    private Integer commitFlag;

    /**
     * 提交文案
     */
    private String commitText;

    /**
     * 是否开启暂存（1：开启；0：不开启）
     */
    private Integer storageFlag;

    /**
     * 暂存文案
     */
    private String storageText;

    /**
     * 是否开启提交并打印（1：开启；0：不开启）
     */
    private Integer commitPrintFlag;

    /**
     * 提交并打印文案
     */
    private String commitPrintText;

    /**
     * 是否开启回退（1：开启；0：不开启）
     */
    private Integer backFlag;

    /**
     * 回退类型
     */
    private Integer backType;

    /**
     * 回退文案
     */
    private String backText;

    /**
     * 回退节点["xx", "xx"]
     */
    private List<Long> backNode;

    /**
     * 是否开启转交（1：开启；0：不开启）
     */
    private Integer transferFlag;

    /**
     * 转交文案
     */
    private String transferText;

    /**
     * 转交人
     */
    private List<OptionalRangeEntity> transferUser;

    /**
     * 是否开启结束流程（1：开启；0：不开启）
     */
    private Integer endFlag;

    /**
     * 结束流程文案
     */
    private String endText;

    /**
     * 节点提交验证，1所有数据均可提交，2满足条件的数据才可提交，具体条件参考验证条件字段
     */
    private Integer commitVerifyFlag;

    /**
     * 节点提交验证条件
     */
    private String commitVerifyCondition;

    /**
     * 会签/或签 1或签(任意负责人提交后进入下一节点), 2会签(所有负责人提交后进入下一节点)
     */
    private Integer signType;

    /**
     * 超时处理
     */
    private String timeoutHandle;

    /**
     * 打印模板id
     */
    private Long printTemplateId;

    /**
     * 是否开启抄送
     */
    private Integer ccPrintFlag;

    /**
     * 横坐标
     */
    private Double x;

    /**
     * 纵坐标
     */
    private Double y;

    public ProcessTemplateNodeAddDTO(){
        uid = "";
        mainUser = new ArrayList<>();
        ccUser = new ArrayList<>();
        fieldPermission = new JSONArray();
        enableCCFlag = 0;
        opinionFlag = 0;
        enable = 1;
        commitFlag = 1;
        commitText = "提交";
        storageFlag = 1;
        storageText = "暂存";
        commitPrintFlag = 0;
        commitPrintText = "提交并打印";
        backFlag = 0;
        backType = 0;
        backText = "回退";
        backNode = new ArrayList<>();
        transferFlag = 0;
        transferText = "转交";
        transferUser = new ArrayList<>();
        endFlag = 0;
        endText = "结束流程";
        commitVerifyFlag = 1;
        commitVerifyCondition = "";
        signType = 1;
        timeoutHandle = "";
        printTemplateId = 0L;
        ccPrintFlag = 0;
        x = 0.00;
        y = 0.00;
    }

}
